//
//  JRHttpRequestHelper.h
//  
//
//  Created by dingjiarui on 2021/7/26.
//

#import <Foundation/Foundation.h>
#import "JRHttpRequest.h"

NS_ASSUME_NONNULL_BEGIN

@interface JRHttpRequestHelper : NSObject

/// 取消全局队列网络请求中key的网络请求
/// @param key 线程key
+ (void)basicHttpFileRequestCancel:(NSString *)key;

/// 取消某队列中key的网络请求
/// @param key 线程key
/// @param opId 队列Id
+ (void)basicHttpFileRequestCancel:(NSString *)key withOpId:(nullable NSString *)opId;

/// 取消某队列网络请求
/// @param opId 队列id
+ (void)basicHttpFileRequestCancelAllWithOpId:(NSString *)opId;

/// 取消所有网络请求
+ (void)basicHttpFileRequestCancelAll;


//---------------普通http请求--------------

/**
 *  @author djr
 *
 *  网络请求
 *
 *  @param urlString   请求链接URL
 *  @param params      传递参数
 *  @param request     请求参数
 *
 */
+ (id <JRHttpCallBackConvertible>)basicHttpRequestWithUrlString:(NSString*)urlString
                                              params:(NSDictionary*)params
                                             request:(JRHttpRequest)request;


//----------------文件请求-----------------

/**
 *  @author djr
 *
 *  上传文件请求
 *
 *  @param urlString       请求链接URL
 *  @param params          传递参数
 *  @param names           文件名称 可nil 默认file
 *  @param resourcePaths   路径集合
 *  @param request         请求参数
 *
 */
+ (id <JRHttpCallBackConvertible>)basicHttpFileUploadWithUrlString:(NSString *)urlString
                                                 params:(NSDictionary*)params
                                                  names:(NSArray *)names
                                          resourcePaths:(NSArray *)resourcePaths
                                                request:(JRHttpRequest)request;

/**
 *  @author djr
 *
 *  下载文件请求
 *
 *  @param urlString        请求链接URL
 *  @param params           传递参数
 *  @param offset           文件续传大小
 *  @param savePath         保存路径
 *  @param request          请求参数
 *
 */
+ (id <JRHttpCallBackConvertible>)basicHttpFileDownloadWithUrlString:(NSString*)urlString
                                                   params:(NSDictionary*)params
                                                   offset:(u_int64_t)offset
                                                 savePath:(NSString*)savePath
                                                  request:(JRHttpRequest)request;

@end

NS_ASSUME_NONNULL_END
